#!/bin/bash
tools_menu__mariadb(){
Entering "MariaDB工具"
input "请选择一个菜单:
[1]添加用户
[2]删除用户
[3]添加数据库
[4]删除数据库
[5]修改权限(待完善)
[6]强制修改数据库密码" option
case $option in 
    '1')
        tools_SQL__mariadb_add_user #进入添加用户功能
        ;;
    '2')
        tools_SQL__mariadb_del_user #进入删除用户功能
        ;;
    '3')
        tools_SQL__mariadb_add_db #进入数据库添加功能
        ;;
    '6')
        tools_SQL__mariadb_force_set_passwd
        ;;
esac
}
tools_menu__docker(){
input "请选择一个菜单
[1]配置Docker镜像加速地址
[2]修改Docker存储驱动
[3]开启Docker远程访问" docker_tools
case $docker_tools in
    '1')
        tools_Dockr_tools_Docker__reset_mirrors #重置Docker镜像加速(来自: ./tools/Docker_tools.sh)
        ;;
    '2')
        tools_Dockr_tools_Docker__Storage_driver #修改Docker存储驱动(来自: ./tools/Docker_tools.sh)
        ;;
    '3')
        tools_Dockr_tools__Docker_remote #开启远程访问(来自: ./tools/Docker_tools.sh)
        ;;
    '4')
        tools_Dockr_tools_Docker_Private_mirrors #开配置私有仓库地址(来自: ./tools/Docker_tools.sh)
        ;;
esac
}
reset_source(){
    if [[ -f '/usr/bin/apt' ]];then
        echo ' ' > /etc/apt/sources.list
    elif [[ -f '/usr/bin/yum' ]];then
        if [[ -d "/yum_bak/" ]];then
            rm -f /etc/yum.repos.d/*
        else
            mkdir -p /yum_bak/
            mv /etc/yum.repos.d/*  /yum_bak/
        fi
    fi
}
tools_menu__add_source_yum(){
    epel="[1]Epel源-->一个免费、开源，广受欢迎的，基于社区的库项目"
    REMI="[2]REMI源-->一个广受欢迎的提供PHP栈最新版本的第三方库，同时该库提供PHP栈其它相关软件"
    RPMFusion="[3]RPMFusion-->是一个为Fedora和企业级Linux发行版提供免费和非免费软件的第三方库"
    ELRepo="[4]ELRepo-->一个提供诸如文件系统驱动、显卡驱动、网络驱动、声卡驱动等硬件相关软件包的RPM库"
    GhettoForge="[5]GhettoForge-->聚焦在为Enterprise Linux releases 6 和 7 提供base和其它第三方库不提供的软件包"
    IUS_Community="[6]IUS Community-->是一个新的第三方的、社区支持的库，它为PHP, Python和MySQL提供了最新的高质量的RPM包"
    if [[ "${System_version}" -eq '7' ]];then
        Psychotic_Ninja="[7]Psychotic Ninja-->为Enterprise Linux releases 6 和 7 提供base和其它第三方库不提供的高质量软件包"
        NUX_dextop="[8]NUX-dextop-->是一个为企业级Linux提供桌面及多媒体软件包的RPM库"
    fi
epel_all="$epel
$REMI
$RPMFusion
$ELRepo
$GhettoForge
$IUS_Community
$Psychotic_Ninja
$NUX_dextop
"
status='true'
while $status;do
    input "$epel_all" yum_source
    case $yum_source in
        '1')
            source_yum__epel${source_version}
            ;;
        '2')
            source_yum__REMI
            ;;
        '3')
            source_yum__RPM_Fusion
            ;;
        '4')
            source_yum__ELRepo
            ;;
        '5')
            source_yum__GhettoForge
            ;;
        '6')
            source_yum__IUS_Community
            ;;
        '7')
            source_yum__Psychotic_Ninja
            ;;
        '8')
            source_yum__NUX_dextop
            ;;
    esac
    input "是否继续添加 [ y/n ],默认[ n ]" add
    if [[ "$add" == 'y' || "$add" == 'Y'  ]];then
        continue
    else    
        break
    fi
done
}
tools_menu__add_source(){
status='true'
while $status;do
    input "请选择需要配置的源
[1]系统源
[2]Docker源
[3]K8S源
[4]Mariadb源
[5]Nginx源
[yum]YUM专属源，例如Epel等"  option_source
    case $option_source in
        '1')
            if [[ "$Package_managements" == 'apt' ]];then
                echo -e "source_${Package_managements}_${System_Type}"
                read ddd
                source_${Package_managements}_${System_Type}
            else
                source_${Package_managements}_${System_Type}${System_version}
            fi
            ;;
        '2')
            source_${Package_managements}_docker-ce 
            ;;
        '3')
            source_${Package_managements}_k8s #配置K8S源
            ;;
        '4')
            source_menu__mariadb_version_select #选择一个Mariadb版本
            source_mariadb__${Package_managements} #配置Mariadb源
            ;;
        '5')
            source_${Package_managements}__nginx
            ;;
        'yum')
            tools_menu__add_source_yum
            ;;
    esac
    input "是否继续添加 [ y/n ],默认[ n ]" add
    if [[ "$add" == 'y' || "$add" == 'Y'  ]];then
        continue
    else    
        break
    fi
done
}
tools_menu__source(){
    input "请选择一个菜单
[1]更换源(初始化当前)
[2]追加源(保留当前)" source_tools
case $source_tools in
    '1')
        reset_source #重置源配置
        tools_menu__add_source #添加源
        ;;
    '2')
        tools_menu__add_source #添加源
        ;;
esac
}
